若有定义语句:int a[2][3],*p[3]; ,则以下语句中正确的是

来源:百度知道 编辑:UC知道 时间:2024/05/17 19:45:45
A)p=a; b)p[0]=a; C) p[0]=&a[1][2]; D)p[1]=&a;

应该选C。

p是一个指针数组,它有四个元素,每个都是一个指向int型的指针。

a是一个二维数组,它的每个元素都是int型的。

A的错误是因为p是常量(数组名都是指针常量),不可以被赋值。而且p和a的类型也不一致。

BCD都是对p的元素赋值,这是可以的,等号右边应当是一个int型数据的指针(即地址)。C选项中a[1][2]是a的一个元素,是一个int型值,&取了它的地址,所以是正确的。

int* p[3]是定义了一个大小为3的数组指针,也就是定义了三个int型的指针。
p代表指针数组的首地址,相当一个二维指针。
p[0],p[1],p[2]代表一个int型指针
C是对的

应该选b

b